
/**
 * 从 localStorage 获取数据
 * @param key 本地存储的键名
 * @returns 解析后的数据，如果不存在则返回 null
 */
export function getLocalCache<T = any>(key: string): T | null {
  const raw = localStorage.getItem(key)
  if (!raw) return null
  try {
    return JSON.parse(raw) as T
  } catch (e) {
    console.warn(`Key "${key}" 的值不是有效的 JSON，将返回原始字符串`)
    return raw as unknown as T
  }
}

/**
 * 将数据存入 localStorage
 * @param key
 * @param value
 */
export function setLocalCache(key: string, value: any): void {
  localStorage.setItem(key, JSON.stringify(value))
}

/**
 * 从 localStorage 删除数据
 * @param key 要删除的键
 */
export function removeLocalCache(key: string): void {
  try {
    localStorage.removeItem(key);
  } catch (error) {
    console.error('LocalStorage 删除失败:', error);
  }
}
